/*
 * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This code is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2
 * only, as published by the Free Software Foundation.
 * 
 * This code is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included in the LICENSE file that accompanied this code).
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 * 
 * Please contact Sun Microsystems, Inc., 16 Network Circle, Menlo
 * Park, CA 94025 or visit www.sun.com if you need additional
 * information or have any questions.
 */

package com.sun.spot.peripheral;

import com.sun.squawk.io.ConnectionBase;


/**
 * Abstract base class for classes that implement a radio Connection that can time out if 
 * an expected acknowledgment doesn't arrive for a sent packet. 
 * 
 */
public abstract class RadioConnectionBase extends ConnectionBase implements ITimeoutableConnection {

	/**
	 * Default timeout in milliseconds
	 */
	public static final long DEFAULT_TIMEOUT = 10000;
	
	private long timeout;


	/**
	 * Default constructor initialises with infinite timeout.
	 */
	public RadioConnectionBase () {
		super ();
		setTimeout(-1);
	}

	/* (non-Javadoc)
	 * @see com.sun.squawk.peripheral.IRadioProperties#setTimeout(long)
	 */
	public void setTimeout(long time) {
		timeout = time;
	}

	/* (non-Javadoc)
	 * @see com.sun.squawk.peripheral.IRadioProperties#getTimeout()
	 */
	public long getTimeout() {
		return timeout;
	}

}
